package com.gitee.cirnochat.chat.model.enums;

import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;
import com.gitee.cirnochat.common.model.enums.BaseEnum;
import lombok.Getter;

/**
 * 消息操作枚举
 * @author FlanChan
 * @since 2025-04-18 22:31:33
 */
@Getter
public enum MessageOperation implements BaseEnum<Integer> {
    /**
     * 成功发送消息
     */
    SENT(0),
    /**
     * 接收消息
     */
    RECEIVE(1),

    /**
     * 撤回消息
     */
    REVOKE(2),

    /**
     * 通知消息
     */
    NOTIFY(3),

    /**
     * 离线推送消息
     */
    OFFLINE(4),

    /**
     * 消息发送错误
     */
    SEND_ERROR(5),

    /**
     * 批量接收消息
     */
    MULTIPLE_RECEIVE(6);

    @EnumValue // 用于 MyBatis-Plus 映射数据库值
    @JsonValue // 用于 JSON 序列化
    private final Integer value;

    MessageOperation(Integer value) {
        this.value = value;
    }
}